package com.insta.bankSystem;

/**
 *
 * @author Sebastien
 */
public abstract class AccountFactory
{
    /* Package */ static AccountBase Create(Customer customer, double deposit) throws InvalidDepositException
    {
        // Cette variable contiendra le compte créé.
        AccountBase result = null;        
        
        if (deposit >= 0 && deposit < 100)
        {
            result = new StandardAccount(customer, deposit);
        }
        else if (deposit >= 100 && deposit < 10000)
        {
            result = new SilverAccount(customer, deposit);
        }
        else if (deposit >= 10000)
        {
            result = new GoldAccount(customer, deposit);
        }
        else
        {
            // on lève une Exception..
            throw new InvalidDepositException("Dépôt initial négatif");
        }
                
        
        // et l'on fait renvoyer la variable contenant le bon type de compte.
        return result;
    }
}
